home *** CD-ROM | disk | FTP | other *** search
/ Loadstar Extras 3 / Ex3side2.d64 / input any source < prev    next >
Text File  |  2022-08-28  |  2KB  |  229 lines

  1.  
  2. open =$ffc0
  3. readst =$ffb7
  4. setlfs =$ffba
  5. setnam =$ffbd
  6. load =$ffd5
  7. getin =$ffe4
  8. clrchn =$ffcc
  9. close =$ffc3   ;a
  10. chrin =$ffcf
  11. chkout =$ffc9  ;x
  12. chkin =$ffc6   ;x
  13. plot =$fff0
  14. chrout =$ffd2
  15. color'pointer =243
  16. screen'line'pointer =209
  17. print'number =$bdcd ;x,a
  18. clear'line =59903
  19. error'string =$200
  20. buffer =$200
  21.  
  22. .org $c000
  23. ;mem
  24. ;obj "input any c000"
  25. ;dis
  26.  
  27. lda #0
  28. sta sub'low
  29. sta sub'high
  30. jsr get'string
  31. pha
  32. tya
  33. pha
  34. txa
  35. pha
  36. jsr get'number
  37. sty device
  38. jsr open'error
  39. pla
  40. tax
  41. pla
  42. tay
  43. pla
  44. jsr setnam
  45. lda #2
  46. jsr close
  47. lda #2
  48. ldx device
  49. ldy #2
  50. jsr setlfs
  51. jsr open
  52. jsr clrchn
  53. jsr read'open'error
  54. jsr clrchn
  55. ldx #2
  56. jsr chkin
  57. lda buffer
  58. cmp "0"
  59. beq get'line
  60. jsr clear'buffer
  61. lda #15
  62. jsr close
  63. lda #2
  64. jsr close
  65. jmp clrchn
  66.  
  67. get'line ldy #0
  68. sty wlength
  69.  
  70. - jsr getin
  71. cmp #13
  72. bne +
  73. - jsr make'wstring
  74. jsr readst
  75. and #64
  76. beq get'line
  77. jmp quit
  78.  
  79. + sta buffer,y
  80. iny
  81. inc wlength
  82. cpy #87
  83. bcc +
  84. bcs -
  85.  
  86. + jsr readst
  87. and #64
  88. beq --
  89. bne -
  90.  
  91. quit lda sub'low
  92. ldx sub'high
  93. sta 251
  94. stx 252
  95. lda #2
  96. jsr close
  97. jsr clrchn
  98. jsr read'open'error
  99. jsr clrchn
  100. lda #15
  101. jmp close
  102.  
  103. rts
  104.  
  105. open'error lda #15
  106. jsr close
  107.  
  108. lda #15
  109. ldx device
  110. ldy #15
  111. jsr setlfs
  112. lda #3
  113. ldy >initialize'name
  114. ldx <initialize'name
  115. jsr setnam
  116. jmp open
  117.  
  118. ;***** get string from BASIC ****
  119.  
  120. get'string jsr $aefd
  121. jsr $ad9e
  122. jsr $b6a3
  123. ldx $22
  124. ldy $23
  125. rts
  126.  
  127. get'number jsr $aefd
  128. jsr $ad8a
  129. jmp $b7f7
  130.  
  131. read'error jsr open'error
  132. read'open'error ldx #15
  133. jsr chkin
  134. ldy #0
  135.  
  136. - jsr getin
  137. sta error'string,y
  138. iny
  139. cmp #13
  140. bne -
  141. iny
  142. sty elength
  143. jsr clrchn
  144.  
  145. ldx <error'name
  146. ldy >error'name
  147. jsr locvar
  148. lda <elength
  149. ldy >elength
  150. jmp set'string
  151.  
  152. locvar lda $7a
  153. pha
  154. lda $7b
  155. pha
  156. stx $7a
  157. sty $7b
  158. jsr $b08b
  159. sta $49
  160. sty $4a
  161. pla
  162. sta $7b
  163. pla
  164. sta $7a
  165. rts
  166.  
  167. set'string sta $64
  168. sty $65
  169. jmp $aa52
  170.  
  171. make'wstring ldy #3
  172. lda " "
  173. - sta string'name+3,y
  174. dey
  175. bpl -
  176.  
  177. lda sub'high
  178. ldx sub'low
  179. sta $62
  180. stx $63
  181. ldx #$90
  182. sec
  183. jsr $bc49
  184. jsr $bddf
  185.  
  186. sta 251
  187. sty 252
  188.  
  189. ldy #0
  190.  
  191. - lda (251),y
  192. beq +
  193. sta string'name+3,y
  194. iny
  195. cpy #4
  196. bcc -
  197.  
  198. + ldx <string'name
  199. ldy >string'name
  200. jsr locvar
  201. lda <wlength
  202. ldy >wlength
  203. jsr set'string
  204. inc sub'low
  205. bne clear'buffer
  206. inc sub'high
  207.  
  208. clear'buffer ldy #79
  209. lda #0
  210. - sta buffer,y
  211. dey
  212. bpl -
  213. rts
  214.  
  215. string'name .asc "w$(0000)":.byt 0
  216. wlength .byt 0
  217. .word buffer
  218.  
  219. error'name .asc "e$":.byt 0
  220. elength .byt 0
  221. .word error'string
  222. string'length .byt 0
  223. initialize'name .asc "i0:"
  224. device .byt 8
  225. error'flag .byt 0
  226. temp .byt 0
  227. sub'low .byt 0
  228. sub'high .byt 0
  229.